package org.cloudlab.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.cloudlab.bean.Paper;

import java.util.List;

/**
 * 文章服务层接口
 *
 * @author Liu Yicong
 * @date 2023/9/7
 */
public interface IPaperService extends IService<Paper> {

	/**
	 * 查询页面
	 *
	 * @param page    页面信息
	 * @param paper   查询条件
	 * @param onlyOwn 是否只看当前用户的数据
	 * @return 查询的页面数据
	 */
	Page<Paper> queryByPage(Page<Paper> page, Paper paper, String onlyOwn);

	/**
	 * 查询用户的所有文章
	 *
	 * @return 用户的所有文章List
	 */
	List<Paper> queryByUserId();

	/**
	 * 根据ID删除文章, 并且删除所有与之关联的投稿记录
	 * 均非物理删除
	 *
	 * @param paperId 文章id
	 */
	void delete(Long paperId);

	/**
	 * 更新
	 *
	 * @param paper 文章实体
	 */
	void update(Paper paper);

	/**
	 * 新增
	 *
	 * @param paper 文章实体
	 */
	void add(Paper paper);
}
